import os
import pandas as pd
from config import *
import matplotlib.pyplot as plt


class Analyser(object):
    def __init__(self):
        pass

    def analyse_edu(self, data):
        """
        分析学历分布
        :return:
        """
        # 统计各学历水平的出现次数
        edu_data = list(data['学历要求'].values)
        edu_count_dict = {}
        for inx, val in enumerate(edu_data):
            edu_count_dict[val] = edu_count_dict.get(val, 0) + 1

        # 提取labels和数据
        labels = []
        sizes = []
        for key, value in edu_count_dict.items():
            labels.append(key)
            sizes.append(value)

        plt.pie(sizes, labels=labels, autopct='%1.2f%%', )
        plt.axis('equal')
        plt.legend(loc='best')
        plt.title("学历占比")
        plt.show()

    def run(self):
        if not os.path.exists(FILE_NAME):
            raise Exception(FILE_NAME + ' not exist')

        self.setup_pyplot()

        # "职位ID	职位名称	学历要求	工作经验	薪资	行业	城市	城区	职位描述"
        # 读取文件，获取 学历要求	工作经验	薪资 列
        data = pd.read_csv(FILE_NAME, encoding='UTF-8')

        data = data.take([2, 3, 4], axis=1)

        # 分析数据质量
        self.describe(data)

        # 分析学历分布
        self.analyse_edu(data)

    def describe(self, data):
        """
        分析数据质量
        :param data:
        :return:
        """
        # 查看数据描述
        print(data.describe())
        print(data['学历要求'].unique())
        print(data['工作经验'].unique())
        print(data['薪资'].unique())

    def setup_pyplot(self):
        plt.rcParams['font.sans-serif'] = ['SimHei']
